package com.java.time;

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class ZoneDateTimeAPI {
    public static void main(String[] args) {
        ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochSecond(0), ZoneId.of("Asia/Shanghai"));
        
        // now：当前时间ZoneDateTime对象
        System.out.println(ZonedDateTime.now());
        
        // ofXxx：指定时间ZoneDateTime对象
        System.out.println(ZonedDateTime.of(2001, 3, 4, 0, 0, 0, 0, ZoneId.of("Asia/Shanghai"))); // 2001-03-04T00:00+08:00[Asia/Shanghai]
        System.out.println(ZonedDateTime.ofInstant(Instant.ofEpochSecond(0), ZoneId.of("Asia/Shanghai"))); // 1970-01-01T08:00+08:00[Asia/Shanghai]
        
        // withXxx：修改时间的系列方法
        System.out.println(zonedDateTime.withYear(2000).withMonth(2).withDayOfMonth(2).withHour(2)); // 2000-02-02T02:00+08:00[Asia/Shanghai]
        
        // plusXxx：增加时间的系列方法
        System.out.println(zonedDateTime.plusYears(10).plusMonths(1).plusDays(1).plusHours(1)); // 1980-02-02T09:00+08:00[Asia/Shanghai]
        
        // minusXxx：减少时间的系列方法
        System.out.println(zonedDateTime.minusYears(10).minusMonths(1).minusDays(1).minusHours(1)); // 1959-11-30T07:00+08:00[Asia/Shanghai]
    }
}
